// server.js
const express = require('express');
const cors = require('cors');
const { initDatabase } = require('./config/database');
require('dotenv').config();

const app = express();
const PORT = process.env.PORT || 5000;

// 中间件
app.use(cors());
app.use(express.json());

// 加载路由
const workflowRoutes = require('./routes/workflowRoutes');
app.use('/api/workflows', workflowRoutes);

// 简单的认证中间件（生产环境应使用JWT等）
app.use((req, res, next) => {
  // 模拟用户认证，实际项目中应该从JWT token中获取
  req.user = { id: 1, username: 'demo_user' };
  next();
});

// 路由
app.use('/api/workflows', require('./routes/workflowRoutes'));

// 健康检查端点
app.get('/health', (req, res) => {
  res.json({ status: 'OK', timestamp: new Date().toISOString() });
});

// 错误处理中间件
app.use((err, req, res, next) => {
  console.error(err.stack);
  res.status(500).json({
    success: false,
    message: '服务器内部错误',
    error: process.env.NODE_ENV === 'development' ? err.message : {}
  });
});

// 启动服务器
app.listen(PORT, async () => {
  console.log(`服务器运行在端口 ${PORT}`);
  
  // 初始化数据库
  await initDatabase();
});

module.exports = app;